package com.rome.hotel.data.mapper;

import java.util.List;
import com.rome.hotel.data.domain.HotelReserve;

/**
 * 预定Mapper接口
 * 
 * @author rome
 * @date 2024-01-20
 */
public interface HotelReserveMapper 
{
    /**
     * 查询预定
     * 
     * @param reserveId 预定主键
     * @return 预定
     */
    public HotelReserve selectHotelReserveByReserveId(Long reserveId);

    /**
     * 查询预定列表
     * 
     * @param hotelReserve 预定
     * @return 预定集合
     */
    public List<HotelReserve> selectHotelReserveList(HotelReserve hotelReserve);

    /**
     * 新增预定
     * 
     * @param hotelReserve 预定
     * @return 结果
     */
    public int insertHotelReserve(HotelReserve hotelReserve);

    /**
     * 修改预定
     * 
     * @param hotelReserve 预定
     * @return 结果
     */
    public int updateHotelReserve(HotelReserve hotelReserve);

    /**
     * 删除预定
     * 
     * @param reserveId 预定主键
     * @return 结果
     */
    public int deleteHotelReserveByReserveId(Long reserveId);

    /**
     * 批量删除预定
     * 
     * @param reserveIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHotelReserveByReserveIds(Long[] reserveIds);

    /**
     * 根据时间查询是否在预约时间和退房时间
     * @return
     */
    public  List<HotelReserve> selectHotelReserveListQuerytime(HotelReserve hotelReserve);
    /**
     * 根据时间查询预约时间在今天之后的房间
     * @return
     */
    public  List<HotelReserve> selectHotelReserveQueryByCheckOut(HotelReserve hotelReserve);

    /**
     * 根据时间查询退房时间在今天之前的房间
     * @return
     */
    public  List<HotelReserve> selectHotelReserveQueryByCheckOutNotRoomNumber(HotelReserve hotelReserve);

    /**
     * 根据入住时间查
     * @param hotelReserve
     * @return
     */
    public  List<HotelReserve> selectHotelReserveByJoinTime(HotelReserve hotelReserve);

    /**
     * 批量查询订单号
     *
     * @param orderNumbers
     * @return 结果
     */
    public List<HotelReserve> selectHotelReserveByorderNumbers(String[] orderNumbers);

    /**
     * 查询订单号
     *
     * @param orderNumber
     * @return 结果
     */
    public HotelReserve selectHotelReserveByOrderNumber(String orderNumber);
}
